package administracion;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import dao.BarraDAO;
import dao.CajaDAO;
import dao.EmpleadoDAO;
import dao.SucursalDAO;
import dto.EmpleadoDTO;
import entity.Caja;
import entity.CajaDiaria;
import entity.Cajero;
import entity.Sucursal;

public class CajaManager {

	private static CajaManager instancia;
	private CajaDAO dao = CajaDAO.getInstancia();
	
	private CajaManager() {
		
	}
	
	public static CajaManager getInstancia(){
		if(instancia == null)
			instancia = new CajaManager();
		return instancia;
	}

	public boolean abrirCajaDiaria(EmpleadoDTO emp) {
		boolean resp = false;
		Cajero cajero = (Cajero) EmpleadoDAO.getInstancia().getEmpleadoLegajo(emp.getLegajo());
		
		CajaDiaria c = new CajaDiaria();
		c.setCajero(cajero);
		c.setFechaApertura(new Date());
		c.setMontoInicial(2000);
		
		dao.altaCajaDiaria(c);
		
		Sucursal suc = SucursalDAO.getInstancia().buscarSucursalCajero(emp);
		Caja caja = suc.getCaja();
		List<CajaDiaria> diarias = new ArrayList<CajaDiaria>();
		
		for(CajaDiaria x: caja.getCajasDiarias()){
			diarias.add(x);
		}
		diarias.add(c);
		caja.setCajasDiarias(diarias);
		
		dao.mergeCaja(caja);

		resp = true;
		
		return resp;
	}
	
	public boolean cerrarCajaDiaria(EmpleadoDTO emp){
		return false;
	}
	
	
	
	
}
